package com.yxc.translationdemo.annotation;

import com.yxc.translationdemo.transcode.DataSourceNull;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 用于字段转义
 *
 * @author: YXC
 * @time: 2022/12/5 17:22
 **/
// 运行时生效
@Retention(RetentionPolicy.RUNTIME)
// 字段注解
@Target(ElementType.FIELD)
public @interface Translation {

    /**
     * 获取转义的方法，需要继承TranslationData方法
     * 使用单例模式，可以直接获取Spring容器当中的Bean
     *
     * @return
     */
    Class<?> dataSource() default DataSourceNull.class;

    /**
     *
     * @return
     */
    String dataSourceClassName() default "";

    /**
     * 要填充的字段
     *
     * @return
     */
    String fieldName();

    /**
     * 如果字段有值，是否覆盖
     *
     * @return
     */
    boolean isCover() default true;

}
